home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / modula2 / 229 < prev    next >
Encoding:
Text File  |  1996-08-06  |  3.5 KB  |  88 lines

  1. Newsgroups: comp.lang.modula2
  2. Path: rugeyes.chinalake.navy.mil!Peter_Eyes_Eiserloh
  3. From: Peter P. Eiserloh <Peter_Eyes_Eiserloh@WSSAGW.chinalake.navy.mil>
  4. Subject: Re: Modula2 for C programmers?
  5. Content-Type: text/plain; charset=ISO-8859-1
  6. Message-ID: <DM49Ht.Iwp@avalon.chinalake.navy.mil>
  7. X-Xxmessage-Id: <AD36734B080121C9@rugeyes.chinalake.navy.mil>
  8. X-Xxdate: Thu, 1 Feb 1996 20:40:27 GMT
  9. Sender: usenet@avalon.chinalake.navy.mil (NAWS news admin)
  10. Content-Transfer-Encoding: 8bit
  11. Organization: Naval Air Warfare Center - Weapons Division
  12. X-Newsreader: Nuntius 2.0.4_68K
  13. References: <DLMz95.9r4@cix.compulink.co.uk> <DM2KB6.983@nyongwa.montreal.qc.ca>
  14. Mime-Version: 1.0
  15. Date: Thu, 1 Feb 1996 21:39:28 GMT
  16.  
  17. Hi,
  18.  
  19. Real world examples abound where access to low level bit operations
  20. are required.  My particular application requires analysis of data
  21. recorded from an embedded system.  These analysis applications are 
  22. usually run on only one type of computer, but it would be nice if 
  23. the source code were portable.
  24.  
  25. Type transfer functions (CASTS) to and from BITSETs (and custom sets)
  26. are a low level operation that is required for many situations.  Bit 
  27. twiddling is required for many situations.  
  28.  
  29. Examples which come to mind are (1) converting a MIL-STD-1750 floating 
  30. point single precision number into IEEE format (2) a number is stored 
  31. in a bitfield within a 16 bit word, and (3) a fixed point number where 
  32. the least significant bit has a value other than one.
  33.  
  34. These all require a knowledge of how the data is represented in the 
  35. computer.  Given the various methods with which this data can be
  36. represented causes these to be non-portable
  37.  
  38. In article <DM2KB6.983@nyongwa.montreal.qc.ca> Michel De Rosa,
  39. aliath@nyongwa.montreal.qc.ca writes:
  40. >Mark Morgan Lloyd (mark_tbu@cix.compulink.co.uk) wrote:
  41. >: > neither does it do any sort of interpretation of the bits,
  42. >: > i.e. it's a straight copy of the bitmap, if you will..
  43. >: 
  44. >: Watch it! I've argued this one in the past with TopSpeed, who IIRC under 
  45. >: certain circumstances _do_ apply transformations.
  46. >
  47. >Really? They do that?... hmmmm do you have any cases, where they do this,
  48. >so i can avoid 'debugging' time.. ;{)
  49. >
  50. >I really don't see what aspect of this 'feature', they felt needed changing,
  51. >PIM is really quite clear on this... I would have argued the point too..
  52.  
  53. Type transfer functions (CASTs) do not simply copy the bits, but rather
  54. they have some very simple sematics.  
  55.  
  56. [1: Type transfer between same sizes]
  57.  
  58.    Straight copy of the bits.
  59.  
  60. [2: Type transfer from long to short]
  61.  
  62.    This should simply truncate off the most significant bits, leaving 
  63.    the least significant N bits.  This may actually modify bits form 
  64.    the original data.  This must not cause a run-time error.
  65.  
  66. [3: Type transfer from short to long]
  67.  
  68.    Signed numbers need help. An cast from an INTEGER to a LONGINT 
  69.    (or possibly    SHORTINT -> INTEGER, and SHORTINT -> LONGINT) 
  70.    would extend the sign bit (assuming twos complement) into the 
  71.    upper bits of the LONGINT.  This does not modify any of the 
  72.    original bits though.  
  73.  
  74.    All other transfers should be treated as unsigned, in particular
  75.    CHARs. 
  76.  
  77. In addition, type transer fucntions are restricted to only simple types 
  78. (ie. not records or arrays), but do allow bitsets, and custom sets if 
  79. they fit within a word or longword.  Some compilers allow very large 
  80. sizes of sets (ie. 256 elements for SET OF CHAR), but this is very
  81. non-standard.  
  82.  
  83. NOTE: all comments are made without knowledge of the ISO-xxxx standard.
  84. If any of my comments contradict this standard please inform me.
  85.  
  86. Peter
  87. -----
  88.